package LeetCode刷题;

/**
 * @program: Java_Study
 * @author: Xiaofan
 * @createTime: 2021-11-03 19:54
 * @description: Functions of this class is
 * 这个数组中0可以当任何数用，所以当牌不连续的时候，它就可以替补一下，进而达到顺的要求。
 * 举个例子 0 0 1 2 4 5 6,这个数组中，0有两个，所以我们有俩万能替补，接着我们可以发现2-4之间不连续，缺个3，
 * 这样我们就可以把一个0放到哪里当三，0 1 2 0 4 5 6,0代替了3的位置，达到了连续的要求，
 * 那啥时候就不行了呢，当你万能替补0的个数·，没有间隙大的时候，比如你只有一个0，但是其中数组中有俩连续的数之间差特别大，达到0的个数不够
 * ，比如1-7，中间差了5个数，你就一个0显然不够，所以这就不是顺儿。
 *
 ********最重要的就是判断：max-min<5**********和***********没有重复的牌*********
 * 只有当 "最大非王牌 - 最小非王牌 < 5" 且 "非王牌不重复" 的情况下，才是满足条件的!
 * "最大非王牌 - 最小非王牌 < 5"，说明最多四个间隔，顺子需要正好是四个间隔！
 * "非王牌不重复" ，"最大非王牌 - 最小非王牌 = 4"，说明是没有王牌的顺子
 * "非王牌不重复" ，"最大非王牌 - 最小非王牌 < 4"，说明是有王牌的顺子
 *
 * 即：最大牌-最小牌<5这样的话，就说明可以构成一个顺子
 *
 */
public class NoNoNo扑克牌中的顺子 {
    //！！！！！！！！！！！！！！关键就是要排序！！！！！！！！！！！！！！还有判断不能重复！！！！！！！！！！！！！！！！！！！！！！！！！！！
}
/**
 * 官方题解：
 * public boolean isStraight(int[] nums) {
 *         Arrays.sort(nums);
 *         int tot=0;
 *         for(int i=0;i<4;i++){
 *             if(nums[i]==0){
 *                 tot++;
 *                 continue;
 *             }
 *             if(nums[i]==nums[i+1]){
 *                 return false;
 *             }
 *         }
 *         return nums[4]-nums[tot]<5;
 *     }
 */